/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package TableBean;

import java.io.Serializable;
import java.util.List;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author Hector
 */
@Entity
@Table(name = "recurso_actividad")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "RecursoActividad.findAll", query = "SELECT r FROM RecursoActividad r"),
    @NamedQuery(name = "RecursoActividad.findByIdRecurso", query = "SELECT r FROM RecursoActividad r WHERE r.recursoActividadPK.idRecurso = :idRecurso"),
    @NamedQuery(name = "RecursoActividad.findByIdActividad", query = "SELECT r FROM RecursoActividad r WHERE r.recursoActividadPK.idActividad = :idActividad")})
public class RecursoActividad implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected RecursoActividadPK recursoActividadPK;
    @JoinColumn(name = "id_recurso", referencedColumnName = "id_recurso", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Recurso recurso;
    @JoinColumn(name = "id_actividad", referencedColumnName = "id_actividad", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Actividad actividad;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "recursoActividad")
    private List<AvanceRecursoActividad> avanceRecursoActividadList;

    public RecursoActividad() {
    }

    public RecursoActividad(RecursoActividadPK recursoActividadPK) {
        this.recursoActividadPK = recursoActividadPK;
    }

    public RecursoActividad(int idRecurso, int idActividad) {
        this.recursoActividadPK = new RecursoActividadPK(idRecurso, idActividad);
    }

    public RecursoActividadPK getRecursoActividadPK() {
        return recursoActividadPK;
    }

    public void setRecursoActividadPK(RecursoActividadPK recursoActividadPK) {
        this.recursoActividadPK = recursoActividadPK;
    }

    public Recurso getRecurso() {
        return recurso;
    }

    public void setRecurso(Recurso recurso) {
        this.recurso = recurso;
    }

    public Actividad getActividad() {
        return actividad;
    }

    public void setActividad(Actividad actividad) {
        this.actividad = actividad;
    }

    @XmlTransient
    public List<AvanceRecursoActividad> getAvanceRecursoActividadList() {
        return avanceRecursoActividadList;
    }

    public void setAvanceRecursoActividadList(List<AvanceRecursoActividad> avanceRecursoActividadList) {
        this.avanceRecursoActividadList = avanceRecursoActividadList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (recursoActividadPK != null ? recursoActividadPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof RecursoActividad)) {
            return false;
        }
        RecursoActividad other = (RecursoActividad) object;
        if ((this.recursoActividadPK == null && other.recursoActividadPK != null) || (this.recursoActividadPK != null && !this.recursoActividadPK.equals(other.recursoActividadPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "TableBean.RecursoActividad[ recursoActividadPK=" + recursoActividadPK + " ]";
    }
    
}
